精  
【外挂】X Presser v0.09 (解放按着X键加速的手指&自动发火球)
id: 2850035956 | 楼主:虫蛊蠡 | 返回首页
id: 45477704301
1L | 作者:虫蛊蠡 | 发布于 2014-02-05 12:44

我做完后测试了一段时间,觉着手感不错,用这个挂打8-5简直太简单了(前提是花身)
目前已知问题:无法退出,只能够通过某些方式结束进程。
请大家复制并修改这段文字:taskkill /f /t /im 这里输入X Presser的文件名.exe
保存到文本文档中并改后缀为.bat.
下面贴上界面图:

附上程序,源码太简陋就不发了吧(刚才按到了C键打出了xxxxxxxxxxxxx……)
请先打开MF再按C键,否则可能会发生一些后果……



id: 45478564153
2L | 作者:虫蛊蠡 | 发布于 2014-02-05 13:03

对了,猛击x号一段时间后也好像能退出


id: 45480071377
3L | 作者:Weapon123hsy | 发布于 2014-02-05 13:36

...这个工具打Koopa逆天,但是不能关闭未免太暴力了...不太好控制


id: 45482897445
4L | 作者:No ID Information! | 发布于 2014-02-05 14:39

不就是连发工具?


id: 45483845213
5L | 作者:HappyLee_12 | 发布于 2014-02-05 15:01

不错的连发工具,前段时间我心血来潮本来也想做一个的,后来还是没完成...不过它不支持修改键位???如果公开源码的话咱吧可以一起将其完善...^_^

回复
虫蛊蠡 于 2014-02-05 17:38:41 id: 45490662692
好的,我将公开源码。
虫蛊蠡 于 2014-02-05 17:50:20 id: 45491174999
修改键位也很简单……只要改一下按键常数就行了……


id: 45490941564
6L | 作者:虫蛊蠡 | 发布于 2014-02-05 17:45

一个小更新:支持关闭啦!
不过这次有两个文件(我用了个笨办法)。
到时候我将修复这个问题。
请运行“点击我.exe”开始使用。
下载地址:http://rinushin.ys168.com/
@Happylee_12


回复
虫蛊蠡 于 2014-02-05 17:47:13 id: 45491037300
@Weapon123hsy
虫蛊蠡 于 2014-02-05 17:58:52 id: 45491548198
表示两个文件这个问题很快就会解决
虫蛊蠡 于 2014-02-05 18:01:05 id: 45491646571
已经找到相关方法


id: 45491136655
7L | 作者:虫蛊蠡 | 发布于 2014-02-05 17:49

@Happylee_12
我已经将源码上传到了我的网盘(请参看上楼),欢迎大家探讨。
PS:我的软件基本全部开源,欢迎大家索取源代码。


回复
HappyLee_12 于 2014-02-06 12:00:37 id: 45530526325
谢谢,研究一下...^_^


id: 45496313813
8L | 作者:Anti_Tencent | 发布于 2014-02-05 19:36

其实这种小程序可以用AutoHotKey写(看名字就知道主要功能了),会方便很多。我以前那个MW改键工具就是用它写的。

回复
虫蛊蠡 于 2014-02-06 08:34:19 id: 45522244179
下过,但确实不大明白怎么用……


id: 45523053578
9L | 作者:虫蛊蠡 | 发布于 2014-02-06 09:04

两个文件捆绑后总报毒,正在免杀中

回复
Anti_Tencent 于 2014-02-07 14:33:45 id: 45595477346
为什么要用两个文件?
虫蛊蠡 于 2014-02-07 14:52:59 id: 45596400992
回复 Anti_Tencent :不知道为什么我注册两个热键其中那个取消键总是按了也没有反应……


id: 45593803479
10L | 作者:虫蛊蠡 | 发布于 2014-02-07 13:59

@HappyLee_12 这个软件Loader部分的源码有一处忘加引号了(Shell Cmd,0)那一处请您在变量cmd两端加上引号……


id: 45595337044
11L | 作者:dodoufatch | 发布于 2014-02-07 14:30

甜菜状态慎用


id: 45596727059
12L | 作者:Anti_Tencent | 发布于 2014-02-07 14:59

我看你这代码是按一下C发送3个X啊。

回复
虫蛊蠡 于 2014-02-07 16:25:43 id: 45600757139
是啊……我在另一个没有发布(因为感染木马重装系统丢失)的版本中用了两个热键,其中一个v键将某个Boolean型变量=True,在按X循环时while某个Boolean型变量=True 那么 exit for,但是我在按下v时用Debug.print跟踪发现根本没有按下V的迹象,我也很不解。
虫蛊蠡 于 2014-02-07 16:26:05 id: 45600774524
回复 虫蛊蠡 :和Exit sub
Anti_Tencent 于 2014-02-07 16:28:31 id: 45600891272
回复 虫蛊蠡 :是不是按X的循环把当前线程阻塞了?
Anti_Tencent 于 2014-02-07 16:29:25 id: 45600934608
回复 虫蛊蠡 :你在循环里加上DoEvents试试?
虫蛊蠡 于 2014-02-07 16:31:03 id: 45601011934
回复 Anti_Tencent :好的,我这就试试
虫蛊蠡 于 2014-02-07 17:00:21 id: 45602426382
回复 Anti_Tencent :还是照样啊……刚刚把问题源码上传到了我的网盘,请您和@HappyLee_12 帮忙看一下
Anti_Tencent 于 2014-02-07 17:50:59 id: 45604848459
回复 虫蛊蠡 :你改用子类化的方法试试。我怀疑是PeekMessage的问题。
Anti_Tencent 于 2014-02-07 17:58:17 id: 45605197021
回复 虫蛊蠡 :我推测的原因如下:没有DoEvents的时候,线程被PressX阻塞,无法处理消息;加上DoEvents时,消息在PeekMessage之前就被VB取走了,所以收不到消息。
虫蛊蠡 于 2014-02-07 19:43:46 id: 45610617354
回复 Anti_Tencent :应该您的推测是正确的,我用按钮测试了一下发现确实是线程堵塞造成布尔型变量Vclick无法被赋值为False。至于子类化我不太明白,再研究一下……
Anti_Tencent 于 2014-02-07 19:55:51 id: 45611305708
回复 虫蛊蠡 :子类化就是用SetWindowLong修改窗口处理消息的函数。
虫蛊蠡 于 2014-2-8 09:13 id: 45637859835
回复 Anti_Tencent :子类化仍然失败(不会吧,又失败了)
Anti_Tencent 于 2014-2-8 11:08 id: 45642768552
回复 虫蛊蠡 :那看来只有用多线程了。
Anti_Tencent 于 2014-2-8 11:10 id: 45642875624
回复 虫蛊蠡 :能否让我看看这次的代码?
虫蛊蠡 于 2014-2-8 12:18 id: 45646215283
回复 Anti_Tencent :其实多线程我昨天晚上也想过(用线程一处理PressX,线程二处理关闭)


id: 45646275033
13L | 作者:虫蛊蠡 | 发布于 2014-02-08 12:19

@Anti_Tencent
'回复 Anti_Tencent :部分代码贴上
Private Sub Form_Load()
RegisterHotKey Me.hWnd, &HABC1234, 0, 67 '67为C的虚拟键码
RegisterHotKey Me.hWnd, &HABC1235, 0, 86 '86为V的虚拟键码
oldproc = SetWindowLong(Me.hWnd, GWL_WNDPROC, AddressOf dsx)
End Sub

Private Sub Form_Unload(Cancel As Integer)
UnregisterHotKey Me.hWnd, &HABC1234
UnregisterHotKey Me.hWnd, &HABC1235

End Sub


回复
Anti_Tencent 于 2014-02-08 12:24:38 id: 45646505055
最好让我看一下完整源码……
虫蛊蠡 于 2014-02-08 12:34:39 id: 45646991923
回复 Anti_Tencent :好的,已上传到网盘
Anti_Tencent 于 2014-02-08 12:45:47 id: 45647544264
回复 虫蛊蠡 :不对啊,我下载到的代码和上次没有什么差别啊。
虫蛊蠡 于 2014-02-08 12:51:42 id: 45647842175
回复 Anti_Tencent :好像还没传完……
Anti_Tencent 于 2014-02-08 12:56:57 id: 45648111732
回复 虫蛊蠡 :现在传好了吗?
虫蛊蠡 于 2014-02-08 13:16:35 id: 45649107900
回复 Anti_Tencent :刚刚贴文字到下一层了,真倒霉,网络很不稳定


id: 45648481298
14L | 作者:虫蛊蠡 | 发布于 2014-02-08 13:04

网络不好,只能贴文字了
Form1:
VERSION 5.00
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 3090
ClientLeft = 60
ClientTop = 450
ClientWidth = 4680
LinkTopic = "Form1"
ScaleHeight = 3090
ScaleWidth = 4680
StartUpPosition = 3 '窗口缺省
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False

Private Sub Form_Load()
RegisterHotKey Me.hWnd, &HABC1234, 0, 67 '67为C的虚拟键码
RegisterHotKey Me.hWnd, &HABC1235, 0, 86 '86为V的虚拟键码
oldproc = SetWindowLong(Me.hWnd, GWL_WNDPROC, AddressOf dsx)
End Sub
Private Sub Form_Unload(Cancel As Integer)
UnregisterHotKey Me.hWnd, &HABC1234
UnregisterHotKey Me.hWnd, &HABC1235
End Sub

模块:
Attribute VB_Name = "Module1"
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Const KEYEVENTF_KEYUP = &H2
Const VK_LWIN = &H5B
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function RegisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
Public VClick As Boolean
Public Declare Function UnregisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal id As Long) As Long
Public Const GWL_WNDPROC = (-4)
Public Const WM_HOTKEY = &H312
Public oldproc As Long

Public Sub PressX()
While VClick = False
Call keybd_event(vbKeyX, 0, 0, 0) 'X键键按下
Sleep (75)
Call keybd_event(vbKeyX, 0, KEYEVENTF_KEYUP, 0) 'X键键弹起
'Sleep (50)
Call keybd_event(vbKeyX, 0, 0, 0) 'X键键按下
Sleep (75)
Call keybd_event(vbKeyX, 0, KEYEVENTF_KEYUP, 0) 'X键键弹起
'Sleep (50)
Sleep (40)
Wend
End Sub
Public Function dsx(ByVal hWnd As Long, ByVal msg As Long, ByVal wp As Long, ByVal lp As Long) As Long
If msg = WM_HOTKEY Then
If wp = &HABC1234 Then
VClick = False
Call PressX
ElseIf wp = &HABC1235 Then
VClick = True
End If
End If
dsx = CallWindowProc(oldproc, hWnd, msg, wp, lp)
End Function

工程:
Type=Exe
Form=Form1.frm
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\..\windows\system32\stdole2.tlb#OLE Automation
Module=Module1; Module1.bas
IconForm="Form1"
Startup="Form1"
ExeName32="工程1.exe"
Command32=""
Name="工程1"
HelpContextID="0"
CompatibleMode="0"
MajorVer=1
MinorVer=0
RevisionVer=0
AutoIncrementVer=0
ServerSupportFiles=0
VersionCompanyName="CGL"
CompilationType=0
OptimizationType=0
FavorPentiumPro(tm)=0
CodeViewDebugInfo=0
NoAliasing=0
BoundsCheck=0
OverflowCheck=0
FlPointCheck=0
FDIVCheck=0
UnroundedFP=0
StartMode=0
Unattended=0
Retained=0
ThreadPerObject=0
MaxNumberOfThreads=1
[MS Transaction Server]
AutoRefresh=1


回复
Anti_Tencent 于 2014-02-08 13:17:43 id: 45649166241
这回只用在发送按键的循环里加上DoEvents就行了。
虫蛊蠡 于 2014-02-08 16:31:06 id: 45658438837
回复 Anti_Tencent :非常感谢!这次终于成功了!马上更新!


id: 45660044458
15L | 作者:虫蛊蠡 | 发布于 2014-02-08 17:04

最新版本v1.00
更新内容:1.单文件(解决V键被占用的问题)
2.添加“关于”对话框
欢迎大家下载。
@HappyLee_12 @Anti_Tencent @无视我…… @……


回复
HappyLee_12 于 2014-02-08 17:34:01 id: 45661501336
不错,辛苦了...^_^
虫蛊蠡 于 2014-02-08 20:14:35 id: 45669967606
回复 HappyLee_12 :关于SB250误报键盘记录的解决方法:加上UPX壳就可以了。


id: 45664601411
16L | 作者:无视我…… | 发布于 2014-02-08 18:37

弱弱问一句 如果要小跳咋办

回复
Anti_Tencent 于 2014-02-08 18:41:33 id: 45664811258
按V键停止。
虫蛊蠡 于 2014-02-08 20:12:42 id: 45669855173
小跳和原来一样啊,只要控制z键的按住的时间就行了